5.09. Важные классы и интерфейсы Kotlin
Важные классы и интерфейсы Kotlin
| Класс, интерфейс | Описание |
|---|---|
| Any | Аналог Object из Java. Все классы наследуются от Any. |
| Unit | Аналог void, используется как возвращаемый тип функций. |
| Nothing | Тип, который не имеет значений, используется для функций, которые никогда не возвращаются. |
List<T>,Set<T>,Map<K,V> | Неизменяемые коллекции. |
MutableList<T>,MutableSet<T>,MutableMap<K,V> | Изменяемые коллекции. |
Pair<A,B>,Triple<A,B,C> | Кортежи для хранения пар/троек значений. |
FunctionN | Функциональные типы (например, (Int, String) -> Boolean). |
CoroutineScope,launch,async | Для работы с корутинами. |
suspend | Модификатор для асинхронных функций. |
sealed class | Ограниченная иерархия классов, полезна в when. |
data class | Автоматически генерирует equals, hashCode, toString и copy. |
inline class | Обертка вокруг одного значения, чтобы не создавать оверхеда. |
companion object | Статические методы внутри класса. |
Примеры часто встречающихся задач
1. Null Safety
val nullableValue: String? = null
val length = nullableValue?.length ?: 0
2. Data Class
data class User(val id: Int, val name: String)
3. Корутины
import kotlinx.coroutines.*
fun main() = runBlocking {
launch {
delay(1000L)
println("World!")
}
println("Hello,")
}
4. Расширение классов
fun String.isLong(): Boolean = this.length > 10
5. HTTP-запрос через Ktor
import io.ktor.client.*
import io.ktor.client.features.json.*
import io.ktor.client.request.*
suspend fun fetchUser(): String {
val client = HttpClient {
install(JsonFeature) {
serializer = KotlinxSerializer()
}
}
return client.get("https://api.example.com/user/1")
}
В отличие от Java, Jetbrains создатели Kotlin, поэтому IntelliJ IDEA – официальная IDE для разработки на Kotlin. Она предоставляет подсветку синтаксиса, умные автодополнения, интеграцию с Gradle/Maven, поддержку Android, JS, Native и Multiplatform.